package com.sardine.base.hbase.executor;

import java.io.Serializable;
import java.util.List;

/**
 * 上海京东到家元信信息技术有限公司<br>
 * Created with IntelliJ IDEA.
 * Date:2017/11/21
 * Time:13:27
 *
 * @author daifeng<br>
 *         daifeng@imdada.cn
 * @since JDK 1.7 <br>
 * Copyright (c) 2017 imdada System Incorporated All Rights Reserved.
 */
public interface HBaseExecutor {
    /**
     * 插入一条记录
     *
     * @param obj
     * @return
     */
    boolean put(Object obj);

    /**
     * 同步批量插入
     * @param objList
     * @return
     */
    boolean put(List<? extends Object> objList);

    /**
     * 异步批量插入
     * @param objList
     * @return
     */
    boolean putAsync(List<? extends Object> objList);

    /**
     *
     * 查询一条记录rowKey
     *
     * @param rowKey
     * @return
     */
    <T> T getOne(Serializable rowKey, Class<T> aClass);


    /**
     * 批量查询一组rowkey
     *
     * @param rowKeyList
     * @return
     */
    <T> List<T> getList(List<? extends Serializable> rowKeyList, Class<T> aClass);
}
